package com.hao.main;

import java.util.ArrayList;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import GiaoHangVietNam.Entities.GoodsInfor;
import GiaoHangVietNam.Entities.InvoiceDetails;

public class DetailGoodInforArrayAdapter extends ArrayAdapter<GoodsInfor> {
	DetailInvoiceActivity context = null;
	ArrayList<GoodsInfor> goodInfoArray = null;
	int layoutId;

	public DetailGoodInforArrayAdapter(DetailInvoiceActivity context, int layoutId,
			ArrayList<GoodsInfor> arr) {
		super(context, layoutId, arr);
		this.context = context;
		this.layoutId = layoutId;
		this.goodInfoArray = arr;
	}

	public View getView(int position, View convertView, ViewGroup parent) {
		/**
		 * bạn chú ý là ở đây Tôi không làm: if(convertView==null) {
		 * LayoutInflater inflater= context.getLayoutInflater();
		 * convertView=inflater.inflate(layoutId, null); } Lý do là ta phải xử
		 * lý xóa phần tử Checked, nếu dùng If thì nó lại checked cho các phần
		 * tử khác sau khi xóa vì convertView lưu lại trạng thái trước đó
		 */
		int index= position+1;
		LayoutInflater inflater = context.getLayoutInflater();
		convertView = inflater.inflate(layoutId, null);
		final TextView orderNumberTv = 
				(TextView)convertView.findViewById(R.id.order_number_tv);
		// dòng lệnh lấy TextView ra để hiển thị loại mặt hàng
		final TextView detailNameGoodTv = (TextView) convertView
				.findViewById(R.id.detail_invoice_goodsname_tv);
		// lấy ra GoodInfo object
		final GoodsInfor goodInfoObject = goodInfoArray.get(position);
		// đưa thông tin lên TextView
		
		detailNameGoodTv.setText(goodInfoObject.GoodsName + "");
		orderNumberTv.setText(index +"");
		final TextView detailCostGoods = (TextView) convertView
				.findViewById(R.id.detail_cost_good_invoice_tv);
		detailCostGoods.setText(goodInfoObject.Cost + "");

		final TextView detailCostShip = (TextView) convertView
				.findViewById(R.id.detail_cost_ship_invoice_tv);
		detailCostShip.setText(goodInfoObject.Fee + "");

		// Vì View là Object là dạng tham chiếu đối tượng, nên
		// mọi sự thay đổi của các object bên trong convertView
		// thì nó cũng biết sự thay đổi đó
		return convertView;// trả về View này, tức là trả luôn
		// về các thông số mới mà ta vừa thay đổi
	}

	@Override
	public void notifyDataSetChanged() {
		// TODO Auto-generated method stub
		super.notifyDataSetChanged();
	}

}
